本篇文章同步發表在 HKT 線上教室 部落格,線上影音教學課程已上架至 Udemy 和 Youtube 頻道。另外,想追蹤更多相關技術資訊,歡迎到 臉書粉絲專頁 按讚追蹤喔~
範例名稱:獲取位置經緯度
開發人員:HKT (侯光燦)
程式語言:Kotlin
開發環境:Android Studio 4.1.2 & Android 11 & Kotlin 1.4.30
授權範圍:使用時必須註明出處且不得為商業目的之使用
範例下載點:點我下載
今天要來跟大家介紹的是,如何使用新式 Fused Location Provider API 來獲取經緯度座標位置。而 Fused Location Provider API 與舊式 LocationManager 相比,Google 官方聲稱,使用上更簡單,讓裝置更省電且可以在更精準的情況下,定位出當下位置。
最後介紹如何透過網頁版的 Google Map 來驗證,我們獲取出來的座標位置是否正確。
在 GRADLE (Module) 層級 dependencies 內加入:
implementation 'com.google.android.gms:play-services-location:17.0.0'
在獲取到位置權限與確認GPS已開啟後,加入獲取經緯度方法
private fun getDeviceLocation() {
try {
if (locationPermissionGranted
) {
val locationRequest = LocationRequest()
locationRequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY
//更新頻率
locationRequest.interval = 1000
//更新次數,若沒設定,會持續更新
//locationRequest.numUpdates = 1
mLocationProviderClient.requestLocationUpdates(
locationRequest,
object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult?) {
locationResult ?: return
Log.d(
"HKT",
"緯度:${locationResult.lastLocation.latitude} , 經度:${locationResult.lastLocation.longitude} "
)
}
},
null
)
} else {
getLocationPermission()
}
} catch (e: SecurityException) {
Log.e("Exception: %s", e.message, e)
}
}
D/HKT: 緯度:25.0338483 , 經度:121.5645283
D/HKT: 緯度:25.0338483 , 經度:121.5645283
D/HKT: 緯度:25.0338483 , 經度:121.5645283
線上 Google Map 網頁驗證位置,需在搜尋欄位中輸入「緯度, 經度」,如「25.0338483, 121.5645283」。
透過這樣的方式,在搜尋欄位中,輸入我們從裝置中獲取出來的座標位置,即可以驗證我們的座標位置是否正確。
HKT 線上教室
https://tw-hkt.blogspot.com/
Freepik
https://www.freepik.com/
那今天【iThome 鐵人賽】就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,追蹤喔!也歡迎大家將這篇文章分享給更多人喔。
我們明天再見囉!!!掰掰~